A Diagnostic Approach to Test Prioritization
نویسندگان
چکیده
In development processes with high code production ratestesting typically triggers fault diagnosis to localize the de-tected failures. However, current test prioritization algo-rithms are tuned for failure detection rate rather than di-agnostic information. Consequently, unnecessary diagnosticeffort might be spent to localize the faults. We present adynamic test prioritization algorithm that trades fault de-tection rate for diagnostic performance, minimizing overalltesting and diagnosis cost. The algorithm exploits pass/failinformation from each test to select the next test, optimizingthe diagnostic information produced per test. Experimen-tal results from synthetic test suites, and suites taken fromthe Software-artifact Infrastructure Repository show possi-ble diagnostic cost reductions up to 10 and 19 percent, re-spectively, compared to the best of random selection, FEP,and ART. The cost reduction is sensitive to the quality ofthe test coverage matrices and component health, but tendsto grow with the number of faults.
منابع مشابه
Prioritizing tests for software fault diagnosis
During regression testing, test prioritization techniques select test cases that maximize the confidence on the correctness of the system when the resources for quality assurance (QA) are limited. In the event of a test failing, the fault at the root of the failure has to be localized, adding an extra debugging cost that has to be taken into account as well. However, test suites that are priori...
متن کاملSimilarity-based regression test case prioritization
With the continuous evolution of software systems, test suites often grow very large. Rerunning all test cases may be impractical in regression testing under limited resources. Coverage-based test case prioritization techniques have been proposed to improve the effectiveness of regression testing. The original test suite often contains some test cases which are designed for exercising productio...
متن کاملA New Technique for Test Case Prioritization
Software testing is important phase of software development life cycle which ensure the developer that the developed software work according to specifications or not. To make testing efficient and effective a techniques of test case prioritization are used. A well-organized Test case prioritization technique reduces the cost of testing and fault detection capabilities of testing. We will go to ...
متن کاملIncorporating Historical Test Case Performance Data and Resource Constraints into Test Case Prioritization
Software regression testing occurs continuously during the software development process in order to detect faults as early as possible. Growing size of test suites on one hand and resource constraints on the other hand, necessitates the test case prioritization process. Test case prioritization techniques schedule test cases for regression testing in an order that increases the chances of early...
متن کاملEmpirical Validation of Variable based Test Case Prioritization/Selection Technique
Regression test case prioritization optimizes the ordering of test cases to be executed to meet some criteria like maximum code coverage or high rate of fault detection. In prior work we prioritized test cases according to a hybrid technique using variable based method that combined both selection and prioritization. We inferred in our approach that variables are vital source of changes in the ...
متن کامل